<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Mail;
use DB;
use Crypt;

class ResetController extends Controller
{
    // forget
    public function forget()
    {
    	// return 111;
    	// 显示一个找回密码的模板
    	return view('admin.reset.forget');
    }
    // sendmail
    public function sendmail(Request $request)
    {
    	// dd($request -> all());
    	// 			邮件的内容
  //   	Mail::raw('这是一封测试邮件', function ($message) {
  //   		$message -> subject('找回密码'); // 发送的邮件主题
		//     $message -> to('1424246110@qq.com'); // 邮件的接收方
		//     // 邮件的发送要用服务器发送
		//     // 有的是使用php函数通过网络发送到邮箱,会被认为垃圾邮件
		    
		//     // laravel提供了从服务器发送的类可以调用
		// });
		// 
		//    view('admin.user.index')都是使用模板文件
		//    views/emails/reminder.blade.php文件作为邮件内容去发送
		//    											// 发送邮件的匿名函数
		$mail = $request -> email;
		$mail = 'email.'.trim(strchr($mail, '@'), '@');

		$data = DB::table('manager') -> where('email',$request -> input('email')) -> first();

		if(!$data)
		{
			// session(['info' => '你输入的邮箱不存在!!']);
			// return view('admin.reset.info');
			return back() -> with(['info' => '你输入的邮箱不存在!!']);
		}
		$s = Mail::send('emails.links', ['user' => $data], function ($message)
		use ($data) { // use ($user) 语法 php5新出的语法 在匿名函数内使用匿名函数外的局部变量
            						  // 发送到模板文件中的一些变量
            						  // 比如用户名 ***你好,你申请进行密码找回
            // $m->from('hello@app.com', 'Your Application');
            // 邮件的接收方						// 发送的邮件主题
            $message -> to($data -> email) -> subject('div测试');
        });
        // dd('ffff');
        if($s)
    	{
    		// session(['info' => '邮件发送成功']);
    		return redirect('/admin/reset/info') -> with(['info' => '邮件发送成功','url' => $mail]);
    	}
    }

    public function inputpass($id,$token)
    {
    	// return $id.$token;
    	$t = DB::table('manager') -> where('id',$id) -> first() -> token;
    	if($t != $token)
    	{
    		return redirect('/admin/reset/info') -> with(['info' => '你的链接来源不正确,拒绝访问']);
    	}

    	return view('admin.reset.newpassword',['info' => '请设置你的新密码','id' => $id]);

    }
    public function info()
    {
    	return view('admin.reset.info');
    }
    public function updatepassword(Request $request)
    {
    	// dd($request-> all());
    	if($request -> password != $request -> repassword)
    	{
    		return back() -> with(['info' => '输入的密码不一致,请重新输入']);
    	}
    	$res = DB::table('manager') -> where('id',$request -> id) -> update(['password' => Crypt::encrypt($request -> password)]);
    	if(!$res)
    	{
    		return redirect('/admin/reset/info') -> with(['info' => '密码重置失败,请重新找回密码']);
    	}
    	return redirect('/admin/login') -> with(['info' => '密码重置成功']);
    }
}
